-- CALC_STORAGE_BOX_BONUS

-- 计算储物箱奖励
-- @param user    玩家对象
return function(user, bonus)
    if type(bonus) == 'table' and #bonus > 0 then
        -- 如果传入了配置的奖励，直接使用
        return { ["bonus"] = bonus }
    end

    local dungeonId = DungeonM.getDungeonId();
    if table.indexOf({2, 23, 22}, dungeonId) > 0 then
        if CombatStatM.getFieldStat("odd_floor") <= 0 then
            -- 第一次奖励第三只手
            CombatStatM.addFieldStat("odd_floor", 1);
            return {["bonus"] = {{1, 8163, 1}}};
        end
    end

    local rand = DungeonM.getRandSeed("storage_box_bonus") % 100;

    -- 30%概率：获得【古老的铜镜】
    -- 20%概率：获得【发条音乐盒】
    -- 20%概率：获得【十字架】
    -- 10%概率：获得【奇怪的雕像】
    -- 20%概率：获得【圣杯】

    local arr = {
        {["class_id"] = 7005, ["ratio"] = 30},
        {["class_id"] = 7006, ["ratio"] = 20},
        {["class_id"] = 7007, ["ratio"] = 20},
        {["class_id"] = 7008, ["ratio"] = 10},
        {["class_id"] = 7072, ["ratio"] = 20},
    };

    local ret = {};

    local elem = fetchElemBySeed(arr, rand);

    table.insert(ret, { 1, elem["class_id"], 1 });

    return { ["bonus"] = ret, };
end